package com.turing.post.salesmanage.util;

import java.math.BigInteger;
import java.util.List;

import javax.ejb.Local;
import javax.ejb.Remote;

import com.turing.post.util.PCPSApplicationException;

/**
 * 赎回单明细 （RedempOrderDetail）
 * 
 * @author zxp
 * @Jan 29, 2013
 */
@Remote
@Local
public interface RedempOrderDetailDao {

	/**
	 * 根据充值单编号主键查询充值单
	 * 
	 * @param DepositOrderId
	 *            充值单编号
	 * @return 充值单
	 */
	public RedempOrderDetail getRedempOrderDetailByRedempOrderDetail(
			RedempOrderDetail rod);

	/**
	 * 查询锁定赎回单明细
	 * 
	 * @param redempOrderDetail
	 * @return
	 */
	public RedempOrderDetail getRedempOrderDetailForUpdate(RedempOrderDetail rod);

	/**
	 * 根据赎回单编号查询赎回单列表
	 * 
	 * @param redempOrderId
	 * @return
	 */
	public List<RedempOrderDetail> getRedempOrderDetailListByRedempOrderId(
			BigInteger redempOrderId);

	/**
	 * 根据赎回单编号查询赎回单明细分页列表
	 * 
	 * @param redempOrderId
	 * @param page
	 * @return
	 */
	public List<RedempOrderDetail> getRedempOrderDetailByCondition(
			BigInteger redempOrderId, Integer page);

	/**
	 * 根据赎回单编号查询赎回单明细记录数
	 * 
	 * @param redempOrderId
	 * @return
	 */
	public BigInteger getRedempOrderDetailTotalByCondition(
			BigInteger redempOrderId);

	/**
	 * 新增
	 * 
	 * @param rod
	 * @throws PCPSApplicationException
	 */
	public void insertRedempOrderDetail(RedempOrderDetail rod)
			throws PCPSApplicationException;
	/**
	 * 删除
	 * 
	 * @param rod
	 * @throws PCPSApplicationException
	 */
	public void deleteRedempOrderDetail(RedempOrderDetail rod)
			throws PCPSApplicationException;
}
